#ifndef __SPACEDEFENDER_SUBJECT_H_
#define __SPACEDEFENDER_SUBJECT_H_

#include <list>
#include <string>

namespace spacedefender
{

class Observer;

class Subject
{
	public:
		Subject(void);
		virtual ~Subject(void);
		virtual void Attach(Observer* newObserver);
		virtual void Detach(Observer* existingObserver);
	protected:
		std::list<Observer*> _observers;
		virtual void Notify();
};

}
#endif // __SPACEDEFENDER_SUBJECT_H_
